SQL SELECT 구문

IT 위키

SQL의 SELECT 구문은 데이터베이스에서 원하는 데이터를 조회할 때 사용하는 기본적인 명령어이다. 테이블에서 특정 컬럼 또는 조건에 맞는 행(row)을 선택하여 결과 집합을 반환한다.

1 기본 문법[편집 | 원본 편집]

SELECT [컬럼명1], [컬럼명2], ...
FROM [테이블명]
[WHERE 조건]
[GROUP BY 컬럼]
[HAVING 조건]
[ORDER BY 컬럼 ASC|DESC]
[LIMIT 개수];

2 주요 구성 요소[편집 | 원본 편집]

  • SELECT
    • 반환할 컬럼 지정
    • *을 사용하면 모든 컬럼 선택
  • FROM
    • 데이터를 가져올 테이블 지정
  • WHERE
    • 행을 필터링하는 조건 지정
  • GROUP BY
    • 그룹화 기준 컬럼 지정 (집계 함수와 함께 사용)
  • HAVING
    • GROUP BY 이후 집계 결과에 조건을 걸 때 사용
  • ORDER BY
    • 정렬 기준 지정 (기본값은 ASC, 오름차순)
  • LIMIT
    • 반환할 결과 행의 개수 제한 (DBMS에 따라 다를 수 있음)

3 예시 테이블[편집 | 원본 편집]

예제에서는 다음과 같은 employees 테이블을 사용한다:

id name department salary
1 Alice IT 6000
2 Bob HR 4000
3 Carol IT 7000
4 Dave Sales 4500
5 Eve IT 5000

4 예시 쿼리[편집 | 원본 편집]

4.1 1. 모든 직원 정보 조회[편집 | 원본 편집]

SELECT * FROM employees;

4.2 2. 이름과 급여만 조회[편집 | 원본 편집]

SELECT name, salary FROM employees;

4.3 3. IT 부서 직원만 조회[편집 | 원본 편집]

SELECT * FROM employees WHERE department = 'IT';

→ 결과:

id name department salary
1 Alice IT 6000
3 Carol IT 7000
5 Eve IT 5000

4.4 4. 급여가 높은 순으로 정렬[편집 | 원본 편집]

SELECT name, salary FROM employees ORDER BY salary DESC;

→ 결과:

name salary
Carol 7000
Alice 6000
Eve 5000
Dave 4500
Bob 4000

4.5 5. 부서별 인원 수 구하기[편집 | 원본 편집]

SELECT department, COUNT(*) AS count
FROM employees
GROUP BY department;

→ 결과:

department count
IT 3
HR 1
Sales 1

4.6 6. 평균 급여가 5000 이상인 부서만 조회[편집 | 원본 편집]

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) >= 5000;

→ 결과:

department avg_salary
IT 6000

4.7 7. 상위 3명만 조회[편집 | 원본 편집]

SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 3;

→ 결과:

name salary
Carol 7000
Alice 6000
Eve 5000

5 같이 보기[편집 | 원본 편집]

6 참고 문헌[편집 | 원본 편집]

  • Melton, J., & Simon, A. R. (2002). SQL: 1999 – Understanding Relational Language Components. Morgan Kaufmann.
  • Oracle SQL Reference
  • PostgreSQL 공식 문서
  • MySQL 문서